package com.learn.util.log;

import java.util.Collections;
import java.util.HashMap;
import java.util.Map;

/**
 * 功能：日志扩展数据
 *
 * @author wsh
 * @date 2021/1/25
 */
public class LoggerExtData {

    private Map<String, Object> extDataMap = null;

    private LoggerExtData() {
        extDataMap = new HashMap<String, Object>();
    }

    /**
     * 创建日志扩展数据实例，每调用一次就创建一个新的实例
     *
     * @param name
     * @param value
     * @return
     */
    public static LoggerExtData create(String name, Object value) {
        return new LoggerExtData().put(name, value);
    }

    /**
     * 向日志扩展数据集合中放置新值
     *
     * @param name
     * @param value
     * @return
     */
    public LoggerExtData put(String name, Object value) {
        extDataMap.put(name, value);
        return this;
    }

    /**
     * 向日志扩展数据集合中批量设置值
     *
     * @param extDataMap
     * @return
     */
    public LoggerExtData put(Map<String, Object> extDataMap) {
        if (null != extDataMap && !extDataMap.isEmpty()) {
            this.extDataMap.putAll(extDataMap);
        }
        return this;
    }

    /**
     * 返回日志扩展数据，如果为空，则返回emptyMap
     *
     * @return
     */
    public Map<String, Object> getExtData() {
        if (extDataMap == null) {
            return Collections.emptyMap();
        }
        return extDataMap;
    }
}
